﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//int main()
//{
//	int m = 3 + 5;
//	int n = m - 2;
//	printf("%d\n", m);
//	printf("%d\n", n);
//
//	return 0;
//}
//
//int main()
//{
//	int num = 5;
//	printf("%d\n", num * num);
//	return 0;
//}
//
//int main()
//{
//	printf("%d\n", 6 / 3);//2
//	printf("%d\n", 6 / 4);//是1而不是1.5  为什么是1呢--6/4 商为1 余数为2  在这除号两端都是整数的时候得到的是整数除法，结果是整数相除的商
//	printf("%f\n", 6.0 / 4); //1.50000  %f是专门打印浮点数的-float  小数点后边六位是默认打印的  只要其中一个带小数即可
//	//%lf 打印的是double类型的浮点数的
//
//	return 0;
//}
//
//#include <stdio.h>
//int main()
//{
//	int score = 5;
//	score = (score / 20) * 100;
//	return 0;
//}//0 要想得到想要的结果，把20改为20.0 可能会有警告

//int main()
//{
//	int a = 3.5;
//	printf("%d\n", a);//得到的结果是3
//	return 0;
//}

//int main()
//{
//	int ret=6 % 4;//1....2
//	printf("%d\n", ret);//2
//	//6 % 4.0;这是错误的
//	return 0;
//
//}
//
//int main()
//{
//	int a = 100;//创建变量的同时给一个初始值这叫做初始化
//	a = 200;
//	printf("%d\n", a);//赋值
//	return 0;
//
//}
//int main()
//{
//
//	int a = 3;
//	int b = 5;
//	int c = 0;
//	c = b = a + 3;//连续赋值，从右往左依次赋值的。
//	printf("%d %d\n", b, c);
//}

//int main()
//{
//	int a = 5;
//	printf("%d\n", a);
//
//	//a = a + 3;要换一种写法
//	/*a += 3;*/ //复合赋值
//	a -= 3;
//	printf("%d\n", a);
//	return 0;
//
//
//}

//int main()
//{
//	int a = 5;
//	//a = a + 1;
//	//a+=1;
//	//a++; //++的意思是让他只增加1  这个是后置++
//	//++a;//前置++
//	printf("%d\n", a);
//	return 0;
//}

//int main()
//{
//	int a = 10;
//	int b = ++a;//前置++
//	//计算口诀 先+1，后使用；先对a的值+1，再赋给b
//	printf("a=%d\n", a);
//	printf("a=%d\n", b);
//	return 0;
//}
//int main()
//{
//	int a = 10;
//	/*int b = a++;*///后置++
//	//计算口诀：先使用，后++；先把a赋给b，a的值再+1
//	/*printf("a=%d\n", a);
//	printf("b=%d\n", b);*/
//	printf("%d\n", a++);//
//	printf("%d\n", a);//
//
//	return 0;
//}

//int main()
//{
//	int a = 10;
//	//int b = --a;//前置--
//	////计算口诀：先--，再使用
//	int b = a--;//后置-- 
//	//计算口诀：先使用，后--
//		printf("a=%d\n", a);//9
//	printf("b=%d\n", b);//10
//
//	return 0;
//}

//int main()
//{
//	int a = 1;
//	printf("%d\n", (++a) + (++a) + (++a));//这种代码是错误的不同编译器的结果是有差异的
//
//
//	return 0;
//}

//int main()
//{
//	int a = (int)3.14;//编译器默认为double类型的
//	//int a = 3.14f;//默认为float类型的
//	printf("%d\n", a);
//
//
//	return 0;
//}

//int main()
//{
//	printf("hello world");
//	return 0;
//}

//int main()
//{
//
//
//	/*printf("there are 3 apples\n");
//	printf("there are %d apples\n", 3);
//	printf("there are %d apples\n", 5);*/
//	
//	/*printf("zhangsan will come tonight\n");
//	printf("%s will come tonight\n", "zhangsan");
//	printf("%s will come tonight\n", "lisi");*/
//
//	printf("%s说:现在是 %d 点\n", "翠花", 21);
//	return 0;
//}


//int main()
//{
//	printf("%E\n", 21340517);
//	printf("%e\n", 21340517);
//
//
//	return 0;
//}

//int main()
//{
//	int num = 10;
//	printf("%d\n", num);
//	printf("%f\n", num);
//	return 0;
//}

//int main()
//{
//	printf("%d\n", 123);
//	printf("%5d\n", 123);//五位来控制它的长度,采用右对齐的方式
//	printf("%5d\n", 1234567); //printf限定占位符的最小宽度
//	return 0;
//}

//左对齐
//int main()
//{
//	printf("%-5dhehe\n", 123);
//	return 0;
//}


//int main()
//{
//	printf("%12f\n", 123.45);
//	return 0;
//}

//int main()
//{
//	printf("%+d\n", 10);
//	printf("%+d\n", -10);
//
//	return 0;
//}

//// 输出 Number is 0.50
//int main()
//{
//	printf("Number is %.2f\n", 0.526);
//	return 0;
//}

// 输出为 " 0.50"

//int main()
//{
//	printf("%6.2f\n",123456.5);
//	return 0;
//}



//int main()
//{
//	printf("%*.*f\n", 6, 2, 0.5);
//	return 0;
//}

//
//int main()
//{
//	printf("%.5s\n", "hello world");
//	return 0;
//}
//int main()
//{
//	int score = 0;
//	printf("请输入成绩：");
//	scanf("%d", &score);//&提供的是地址，并不光是变量本身
//	printf("%d", score);
//	return 0;
//}

//int main()
//{
//	char arr[6] = { 0 };
//	scanf("%s", arr);//数组名本来就是，所以不需要取地址符&
//	printf("%s", arr);
//
//	return 0;
//}
//
//int main()
//{
//	int i = 0;
//	int j = 0;
//	float x = 0.0f;
//	float y = 0.0f;
//	scanf("%d%d%f%f", &i, &j, &x, &y);
//	printf("i=%d\n", i);
//	printf("j=%d\n", j);
//	printf("x=%f\n", x);
//	printf("y=%f\n", y);
//	return 0;
//}

//int main()
//{
//	int x;
//	float y;
//	//用户输入"  -13.45e12# 0"
//	scanf("%d", &x);
//	printf("%d\n", x);
//	scanf("%f", &y);
//	printf("%f\n", y);
//
//	return 0;
//}
//
//int main()
//{
//	int x;
//	float y;
//
//	// ⽤⼾输⼊ " -13.45e12# 0"
//	scanf("%d", &x);
//	printf("%d\n", x);
//	scanf("%f", &y);
//	printf("%f\n", y);
//	return 0;
//}


//int main()
//{
//	int x;
//	float y;
//
//	// ⽤⼾输⼊ " -13.45e12# 0"
//	scanf("%d%f", &x, &y);
//	return 0;
//}

//int main()
//
//{
//	int a = 0;
//	int b = 0;
//	int c = 0;
//	int ret=scanf("%d%d%d", &a, &b, &c);
//	printf("ret=%d\n", ret);
//	printf("a=%d b=%d c=%d\n", a, b, c);
//	return 0;
//}

//int main()
//{
//	int a = 0;
//	int b = 0;
//	/*while (scanf("%d %d", &a, &b) == 2)*/
//		while (scanf("%d %d", &a, &b) != EOF)
//	{
//		int c = a + b;
//		printf("%d\n", c);
//	}
//	return 0;
//}

//int main()
//{
//	int a = 10;
//	char ch = '0';
//	scanf("%c", &ch);
//	printf("%cxxx\n", ch);
//
//	return 0;
//}

//int main()
//{
//	char arr[10] = { 0 };
//	scanf("%s", arr);
//	printf("%s\n", arr);
//
//	return 0;
//}

//int main()
//{
//	char arr1[10] = {0};
//	char arr2[10] = {0};
//	scanf("%s %s", &arr1, &arr2);
//	printf("%s\n", arr1);
//	printf("%s\n", arr2);
//
//	return 0;
//}
//
//int main()
//{
//	char name[11];
//	scanf("%10s", name);
//	printf("%s\n", name);
//
//	return 0;
//}


int main()
{
	int year = 0;
	int month = 0;
	int day = 0;//2022-11-22
	scanf("%d%*c%d%*c%d", &year, &month, &day);
	printf("%d %d %d\n", year, month, day);
	return 0;
}
